package com.xyz.graph.service;

import com.xyz.graph.pojo.gdata.AddVertexParamPojo;
import com.xyz.graph.pojo.gdata.AddVertexPropParamPojo;
import com.xyz.graph.pojo.gdata.BatchAddVertexParamPojo;
import com.xyz.graph.pojo.gdata.edgeParam.AddEdgeParamPojo;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;

import java.util.Map;

public interface GDataService {

//     Map<String,Object> disableGraphic(JClient client, String graphicName);

    String addVertex(GraphTraversalSource g, AddVertexParamPojo addVertexParamPojo);
    String deleteVertex(GraphTraversalSource g, String graphName, String userId, String entityIdKey, String entityId);

    String addVertexProperty(GraphTraversalSource g, AddVertexPropParamPojo addVertexPropParamPojo);
    String deleteVertexProperty(GraphTraversalSource g, String graphName, String userId, String entityIdKey, String entityId, String[] propertyKeys);
    String updateVertexProperty(GraphTraversalSource g, String graphName, String userId, String entityIdKey, String entityId, String propertyKey, String newPropertyValue);

    String batchAddVertex(GraphTraversalSource g, BatchAddVertexParamPojo batchAddVertexParamPojo);

    String addEdge(GraphTraversalSource g, AddEdgeParamPojo addEdgeParamPojo);
    String deleteEdge(GraphTraversalSource g, String graphName, String userId, String entityIdKey, String entityId, String direction, String labelName);

}
